﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Sinacor.Infra.Common;

namespace Sinacor.Servico.Bovespa.Ordens.Service.ServiceImplementation.Translator
{
    public class TranslateOrdemRequestToOrdemParameter: BaseTranslator<BusinessEntity.Parameter.ConsultarOrdemDistribuicaoOrdemOperador, DataContract.Request.ConsultarOrdemDistribuicaoOrdemOperadorRequest,
        List<BusinessEntity.Parameter.ConsultarOrdemDistribuicaoOrdemOperador>,List<DataContract.Request.ConsultarOrdemDistribuicaoOrdemOperadorRequest>>
    {
        public override Sinacor.Servico.Bovespa.Ordens.BusinessEntity.Parameter.ConsultarOrdemDistribuicaoOrdemOperador Translate(Sinacor.Servico.Bovespa.Ordens.Service.DataContract.Request.ConsultarOrdemDistribuicaoOrdemOperadorRequest from)
        {
            if (from == null)
            {
                return null;
            }
            BusinessEntity.Parameter.ConsultarOrdemDistribuicaoOrdemOperador to = new Sinacor.Servico.Bovespa.Ordens.BusinessEntity.Parameter.ConsultarOrdemDistribuicaoOrdemOperador();

            to.ApelidoCliente = from.ApelidoCliente;
            to.CodigoBolsa = from.CodigoBolsa;
            to.CodigoNegocio = from.CodigoNegocio;
            to.DataPregao = from.DataPregao;
            to.IsDiscricionaria = from.IsDiscricionaria;
            to.LoginOperador = from.LoginOperador;

            switch (from.NaturezaOperacao)
            {
                case DataContract.Enum.TipoNaturezaOperacao.Compra:
                    to.NaturezaOperacao = Sinacor.Servico.Bovespa.Ordens.BusinessEntity.Enum.TipoNaturezaOperacao.Compra;
                    break;
                case DataContract.Enum.TipoNaturezaOperacao.Venda:
                    to.NaturezaOperacao = Sinacor.Servico.Bovespa.Ordens.BusinessEntity.Enum.TipoNaturezaOperacao.Venda;
                    break;
                default:
                    break;
            }

            to.PrazoTermo = from.PrazoTermo;

            return to;
        }
    }
}
